home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / PInterfaces / StandardFile.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  9.8 KB  |  309 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        StandardFile.p
  3.  
  4.      Contains:    Standard File package Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1990-1995, 1997-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT StandardFile;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __STANDARDFILE__}
  27. {$SETC __STANDARDFILE__ := 1}
  28.  
  29. {$I+}
  30. {$SETC StandardFileIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __DIALOGS__}
  37. {$I Dialogs.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED __FILES__}
  40. {$I Files.p}
  41. {$ENDC}
  42.  
  43.  
  44. {$PUSH}
  45. {$ALIGN MAC68K}
  46. {$LibExport+}
  47.  
  48.  
  49. CONST
  50.                                                                 {  resource IDs of pre-7.0 get and put dialogs  }
  51.     putDlgID                    = -3999;
  52.     getDlgID                    = -4000;
  53.  
  54.                                                                 {  item offsets of pre-7.0 get and put dialogs  }
  55.     putSave                        = 1;
  56.     putCancel                    = 2;
  57.     putEject                    = 5;
  58.     putDrive                    = 6;
  59.     putName                        = 7;
  60.     getOpen                        = 1;
  61.     getCancel                    = 3;
  62.     getEject                    = 5;
  63.     getDrive                    = 6;
  64.     getNmList                    = 7;
  65.     getScroll                    = 8;
  66.  
  67.                                                                 {  resource IDs of 7.0 get and put dialogs  }
  68.     sfPutDialogID                = -6043;
  69.     sfGetDialogID                = -6042;
  70.  
  71.                                                                 {  item offsets of 7.0 get and put dialogs  }
  72.     sfItemOpenButton            = 1;
  73.     sfItemCancelButton            = 2;
  74.     sfItemBalloonHelp            = 3;
  75.     sfItemVolumeUser            = 4;
  76.     sfItemEjectButton            = 5;
  77.     sfItemDesktopButton            = 6;
  78.     sfItemFileListUser            = 7;
  79.     sfItemPopUpMenuUser            = 8;
  80.     sfItemDividerLinePict        = 9;
  81.     sfItemFileNameTextEdit        = 10;
  82.     sfItemPromptStaticText        = 11;
  83.     sfItemNewFolderUser            = 12;
  84.  
  85.                                                                 {  pseudo-item hits for use in DlgHook  }
  86.     sfHookFirstCall                = -1;
  87.     sfHookCharOffset            = $1000;
  88.     sfHookNullEvent                = 100;
  89.     sfHookRebuildList            = 101;
  90.     sfHookFolderPopUp            = 102;
  91.     sfHookOpenFolder            = 103;                            {  the following are only in system 7.0+  }
  92.     sfHookLastCall                = -2;
  93.     sfHookOpenAlias                = 104;
  94.     sfHookGoToDesktop            = 105;
  95.     sfHookGoToAliasTarget        = 106;
  96.     sfHookGoToParent            = 107;
  97.     sfHookGoToNextDrive            = 108;
  98.     sfHookGoToPrevDrive            = 109;
  99.     sfHookChangeSelection        = 110;
  100.     sfHookSetActiveOffset        = 200;
  101.  
  102.  
  103. { the refcon field of the dialog record during a
  104.  modalfilter or dialoghook contains one of the following }
  105.     sfMainDialogRefCon            = 'stdf';
  106.     sfNewFolderDialogRefCon        = 'nfdr';
  107.     sfReplaceDialogRefCon        = 'rplc';
  108.     sfStatWarnDialogRefCon        = 'stat';
  109.     sfLockWarnDialogRefCon        = 'lock';
  110.     sfErrorDialogRefCon            = 'err ';
  111.  
  112.  
  113.  
  114. TYPE
  115.     SFReplyPtr = ^SFReply;
  116.     SFReply = RECORD
  117.         good:                    BOOLEAN;
  118.         copy:                    BOOLEAN;
  119.         fType:                    OSType;
  120.         vRefNum:                INTEGER;
  121.         version:                INTEGER;
  122.         fName:                    StrFileName;                            {  a Str63 on MacOS  }
  123.     END;
  124.  
  125.     StandardFileReplyPtr = ^StandardFileReply;
  126.     StandardFileReply = RECORD
  127.         sfGood:                    BOOLEAN;
  128.         sfReplacing:            BOOLEAN;
  129.         sfType:                    OSType;
  130.         sfFile:                    FSSpec;
  131.         sfScript:                ScriptCode;
  132.         sfFlags:                INTEGER;
  133.         sfIsFolder:                BOOLEAN;
  134.         sfIsVolume:                BOOLEAN;
  135.         sfReserved1:            LONGINT;
  136.         sfReserved2:            INTEGER;
  137.     END;
  138.  
  139. { for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers }
  140.     ActivationOrderListPtr                = ^INTEGER;
  141. {$IFC TYPED_FUNCTION_POINTERS}
  142.     DlgHookProcPtr = FUNCTION(item: INTEGER; theDialog: DialogPtr): INTEGER;
  143. {$ELSEC}
  144.     DlgHookProcPtr = ProcPtr;
  145. {$ENDC}
  146.  
  147. {$IFC TYPED_FUNCTION_POINTERS}
  148.     FileFilterProcPtr = FUNCTION(pb: CInfoPBPtr): BOOLEAN;
  149. {$ELSEC}
  150.     FileFilterProcPtr = ProcPtr;
  151. {$ENDC}
  152.  
  153. { the following also include an extra parameter of "your data pointer" }
  154. {$IFC TYPED_FUNCTION_POINTERS}
  155.     DlgHookYDProcPtr = FUNCTION(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr): INTEGER;
  156. {$ELSEC}
  157.     DlgHookYDProcPtr = ProcPtr;
  158. {$ENDC}
  159.  
  160. {$IFC TYPED_FUNCTION_POINTERS}
  161.     ModalFilterYDProcPtr = FUNCTION(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr): BOOLEAN;
  162. {$ELSEC}
  163.     ModalFilterYDProcPtr = ProcPtr;
  164. {$ENDC}
  165.  
  166. {$IFC TYPED_FUNCTION_POINTERS}
  167.     FileFilterYDProcPtr = FUNCTION(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr): BOOLEAN;
  168. {$ELSEC}
  169.     FileFilterYDProcPtr = ProcPtr;
  170. {$ENDC}
  171.  
  172. {$IFC TYPED_FUNCTION_POINTERS}
  173.     ActivateYDProcPtr = PROCEDURE(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr);
  174. {$ELSEC}
  175.     ActivateYDProcPtr = ProcPtr;
  176. {$ENDC}
  177.  
  178.     DlgHookUPP = UniversalProcPtr;
  179.     FileFilterUPP = UniversalProcPtr;
  180.     DlgHookYDUPP = UniversalProcPtr;
  181.     ModalFilterYDUPP = UniversalProcPtr;
  182.     FileFilterYDUPP = UniversalProcPtr;
  183.     ActivateYDUPP = UniversalProcPtr;
  184.  
  185. CONST
  186.     uppDlgHookProcInfo = $000003A0;
  187.     uppFileFilterProcInfo = $000000D0;
  188.     uppDlgHookYDProcInfo = $00000FA0;
  189.     uppModalFilterYDProcInfo = $00003FD0;
  190.     uppFileFilterYDProcInfo = $000003D0;
  191.     uppActivateYDProcInfo = $000036C0;
  192.  
  193. FUNCTION NewDlgHookProc(userRoutine: DlgHookProcPtr): DlgHookUPP;
  194.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  195.     INLINE $2E9F;
  196.     {$ENDC}
  197.  
  198. FUNCTION NewFileFilterProc(userRoutine: FileFilterProcPtr): FileFilterUPP;
  199.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  200.     INLINE $2E9F;
  201.     {$ENDC}
  202.  
  203. FUNCTION NewDlgHookYDProc(userRoutine: DlgHookYDProcPtr): DlgHookYDUPP;
  204.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  205.     INLINE $2E9F;
  206.     {$ENDC}
  207.  
  208. FUNCTION NewModalFilterYDProc(userRoutine: ModalFilterYDProcPtr): ModalFilterYDUPP;
  209.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  210.     INLINE $2E9F;
  211.     {$ENDC}
  212.  
  213. FUNCTION NewFileFilterYDProc(userRoutine: FileFilterYDProcPtr): FileFilterYDUPP;
  214.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  215.     INLINE $2E9F;
  216.     {$ENDC}
  217.  
  218. FUNCTION NewActivateYDProc(userRoutine: ActivateYDProcPtr): ActivateYDUPP;
  219.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  220.     INLINE $2E9F;
  221.     {$ENDC}
  222.  
  223. FUNCTION CallDlgHookProc(item: INTEGER; theDialog: DialogPtr; userRoutine: DlgHookUPP): INTEGER;
  224.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  225.     INLINE $205F, $4E90;
  226.     {$ENDC}
  227.  
  228. FUNCTION CallFileFilterProc(pb: CInfoPBPtr; userRoutine: FileFilterUPP): BOOLEAN;
  229.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  230.     INLINE $205F, $4E90;
  231.     {$ENDC}
  232.  
  233. FUNCTION CallDlgHookYDProc(item: INTEGER; theDialog: DialogPtr; yourDataPtr: UNIV Ptr; userRoutine: DlgHookYDUPP): INTEGER;
  234.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  235.     INLINE $205F, $4E90;
  236.     {$ENDC}
  237.  
  238. FUNCTION CallModalFilterYDProc(theDialog: DialogPtr; VAR theEvent: EventRecord; VAR itemHit: INTEGER; yourDataPtr: UNIV Ptr; userRoutine: ModalFilterYDUPP): BOOLEAN;
  239.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  240.     INLINE $205F, $4E90;
  241.     {$ENDC}
  242.  
  243. FUNCTION CallFileFilterYDProc(pb: CInfoPBPtr; yourDataPtr: UNIV Ptr; userRoutine: FileFilterYDUPP): BOOLEAN;
  244.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  245.     INLINE $205F, $4E90;
  246.     {$ENDC}
  247.  
  248. PROCEDURE CallActivateYDProc(theDialog: DialogPtr; itemNo: INTEGER; activating: BOOLEAN; yourDataPtr: UNIV Ptr; userRoutine: ActivateYDUPP);
  249.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  250.     INLINE $205F, $4E90;
  251.     {$ENDC}
  252.  
  253. TYPE
  254.     SFTypeList                            = ARRAY [0..3] OF OSType;
  255. {
  256.     The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  257.     For C, this will add "const" and make it an in-only parameter.
  258.     For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.
  259.  
  260.     ConstSFTypeListPtr is a pointer to an array of OSTypes.
  261. }
  262.     ConstSFTypeListPtr                    = ^OSType;
  263. PROCEDURE SFPutFile(where: Point; prompt: Str255; origName: Str255; dlgHook: DlgHookUPP; VAR reply: SFReply);
  264.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  265.     INLINE $3F3C, $0001, $A9EA;
  266.     {$ENDC}
  267. PROCEDURE SFGetFile(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply);
  268.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  269.     INLINE $3F3C, $0002, $A9EA;
  270.     {$ENDC}
  271. PROCEDURE SFPPutFile(where: Point; prompt: Str255; origName: Str255; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  272.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  273.     INLINE $3F3C, $0003, $A9EA;
  274.     {$ENDC}
  275. PROCEDURE SFPGetFile(where: Point; prompt: Str255; fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; dlgHook: DlgHookUPP; VAR reply: SFReply; dlgID: INTEGER; filterProc: ModalFilterUPP);
  276.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  277.     INLINE $3F3C, $0004, $A9EA;
  278.     {$ENDC}
  279. PROCEDURE StandardPutFile(prompt: Str255; defaultName: Str255; VAR reply: StandardFileReply);
  280.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  281.     INLINE $3F3C, $0005, $A9EA;
  282.     {$ENDC}
  283. PROCEDURE StandardGetFile(fileFilter: FileFilterUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply);
  284.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  285.     INLINE $3F3C, $0006, $A9EA;
  286.     {$ENDC}
  287. PROCEDURE CustomPutFile(prompt: Str255; defaultName: Str255; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  288.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  289.     INLINE $3F3C, $0007, $A9EA;
  290.     {$ENDC}
  291. PROCEDURE CustomGetFile(fileFilter: FileFilterYDUPP; numTypes: INTEGER; typeList: ConstSFTypeListPtr; VAR reply: StandardFileReply; dlgID: INTEGER; where: Point; dlgHook: DlgHookYDUPP; filterProc: ModalFilterYDUPP; activeList: ActivationOrderListPtr; activate: ActivateYDUPP; yourDataPtr: UNIV Ptr);
  292.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  293.     INLINE $3F3C, $0008, $A9EA;
  294.     {$ENDC}
  295. FUNCTION StandardOpenDialog(VAR reply: StandardFileReply): OSErr;
  296.  
  297.  
  298.  
  299. {$ALIGN RESET}
  300. {$POP}
  301.  
  302. {$SETC UsingIncludes := StandardFileIncludes}
  303.  
  304. {$ENDC} {__STANDARDFILE__}
  305.  
  306. {$IFC NOT UsingIncludes}
  307.  END.
  308. {$ENDC}
  309.